區塊鏈網路建構在實體網路之上,大致可分四層探討:
(圖片來源: https://www.ithome.com.tw/news/139472)
應用層:就是「應用場景」。
舉例如比特幣的金融經濟,或是部署在以太坊上的智能合約應用,透過程式執行金融產業的運作等。(註:智能合約是一個用程式碼寫好在那邊的規則,時間一到就能觸發,並按照程式碼執行,不會有延宕或猶疑的空間)
常見弱點有:
- 智能合約弱點
- 邏輯錯誤
共識層:規範共識機制演算法
決定由誰記帳的選擇,常見有的共識證明機制有
工作量證明機制(Proof of Work,Pow)
權益證明機制(Proof of Stake,PoS)
權威證明(Proof of Authority,PoA)
代理權益證明(Delegated Proof of Stake,DPos)
常見攻擊有:
- 51攻擊:假設全球比特幣有n個節點礦工,你又額外「創造」了n+1個礦工節點,創造「過半」的優勢,作票來讓大家通過你的交易。
- 女巫攻擊:當你說服過半的節點投票通過你的交易,而這筆交易是錯誤的,卻被寫入區塊保存。
過程(教你怎麼駭):比特幣的區塊鏈上,目前有近一萬個節點,條件是你必須賄賂全球各地的5000個節點,讓他們相信你的交易是正確的,你手上可能要有相當大的利益賄賂這些節點。
結果:就算你賄賂成功,大家也不會把自己真正的交易再放到這條鏈上,這條鏈的價值就會形同毫無存在,他們的飯碗也沒了。
解決:這種情形,若能提高產生出每一「票」的成本,減少相對的作票就能解決。
- 雙花問題:簡單說,無限提領的ATM。你用簡單的交易,換得了很多服務。
過程:
(#: 你產生的區塊)
#1: 我是礦工,我有$1000
#2: 我花$1000吃了一頓日式料理
#3: 當料理店老闆看到#3出現後,他認為#2應該安全,所以給我日式料理
#4: 我說因為我在 #1有$1000,故此時我在隔壁燦x買相機
#5: 然後我用超強算力挖到#5,超車成為最強鏈
#6: 然後為求保險,我再挖一個#6
於是我跑去買一部二手車的交易寫在#6,並讓#2、#3憑空消失,料理店老闆形同免費提供你一餐,如此推論,要是順利有#7、#8、#9、#10、…,的出現,那麼之後買車將會變成無償提供。
這裡就得到一個結論:當壞人有過半算力,比一半以上礦工都強,才會變成最長鏈
所以說超過1~2個區塊很平常,通常需要6次驗證後交貨,比較不容易有超車攻破的可能。
請繼續鎖定明天的漏洞第二集~